﻿<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
                xmlns:sp="http://schemas.microsoft.com/sharepoint/"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:msxsl="urn:schemas-microsoft-com:xslt"
                exclude-result-prefixes="msxsl sp"
                extension-element-prefixes="sp">
  <xsl:output method="xml" indent="yes"/>

  <!--Imports-->
  <xsl:include href="resx.xslt"/>
  <xsl:include href="feature.xslt"/>
  <xsl:include href="toolkit.xslt"/>

  <!--
  ========================================================================================
  Point d'entrée
  ========================================================================================
  -->
  <xsl:template match="/">
    <xsl:apply-templates select="sp:Solution"/>
  </xsl:template>

  <!--
  ========================================================================================
  Template [Solution]
  ========================================================================================
  -->
  <xsl:template match="sp:Solution">
    <Solution Id="{@SolutionId}">

      <xsl:apply-templates select="sp:RootFiles" mode="copy-no-namespaces"/>
      <xsl:apply-templates select="sp:TemplateFiles" mode="copy-no-namespaces"/>

      <Resources>
        <xsl:apply-templates select="sp:RootFiles/sp:RootFile"/>
      </Resources>
      <Features>
        <xsl:apply-templates select="sp:FeatureManifests/sp:FeatureManifest"/>
      </Features>

    </Solution>
  </xsl:template>


  <!--
  ========================================================================================
  Template [Feature]
  ========================================================================================
  -->
  <xsl:template match="sp:FeatureManifest">

    <!--fichier lié-->
    <xsl:variable name="featureManifest" select="document(@Location)"/>
    <xsl:variable name="featureFolder" select="substring-before(@Location,'\')"/>

    <!--Transformation-->
    <xsl:apply-templates select="$featureManifest/sp:Feature">
      <xsl:with-param name="featureFolder" select="$featureFolder"/>
    </xsl:apply-templates>

  </xsl:template>


  <!--
  ========================================================================================
  Template [Ressource]
  ========================================================================================
  -->
  <xsl:template match="sp:RootFile">

    <xsl:variable name="fiveLastCars" select="substring(@Location, 1 + string-length (@Location) - 5)"/>
    <xsl:if test="$fiveLastCars='.resx'">

      <!--fichier lié-->
      <xsl:variable name="rootFile" select="document(@Location)"/>
      <xsl:variable name="fileName" select="substring-after(@Location,'\')"/>

      <!--Transformation-->
      <xsl:apply-templates select="$rootFile/root">
        <xsl:with-param name="fileName" select="$fileName"/>
      </xsl:apply-templates>
    </xsl:if>

  </xsl:template>

</xsl:stylesheet>
